/**
 * @projectName 高校就业网
 * @package com.kzj.CollegeEmploymentNetwork.service
 * @className com.kzj.CollegeEmploymentNetwork.service.CompanyService
 * @copyright Copyright 2025 Thunisoft, Inc. All rights reserved.
 */
package com.kzj.CollegeEmploymentNetwork.service;

import java.util.List;

import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.thunisoft.artery.util.uuid.UUIDHelper;
import com.kzj.CollegeEmploymentNetwork.mapper.CompanyMapper;
import com.kzj.CollegeEmploymentNetwork.model.Company;

/**
 * 公司表service接口实现类
 * 
 * @description 公司表service接口实现
 * @author kzj
 * @date 2025年01月20日 23:11:54
 * @version 1.0.0
 */
@Service
public class CompanyService{

    /**
     * companyMapper
     */
    @Autowired
    private CompanyMapper companyMapper;

    /**
     * CompanyService
     * 
     * @description 插入一条公司表数据
     * @param company 公司表
     * @return 影响行数
     * @author kzj
     * @date 2025年01月20日 23:11:54
     * @version 1.0.0
     */
    public int insert(Company company) {
        if (StringUtils.isBlank(company.getBh())) {
            company.setBh(UUIDHelper.getUuid());
        }
        return companyMapper.insert(company);
    }

    /**
     * CompanyService
     * 
     * @description 通过主键删除公司表数据
     * @param cbh 主键编号
     * @return 影响行数
     * @author kzj
     * @date 2025年01月20日 23:11:54
     * @version 1.0.0
     */
    public int delete(String cbh) {
        return companyMapper.deleteByPrimaryKey(cbh);
    }

    /**
     * CompanyService
     * 
     * @description 通过主键修改Company数据
     * @param company 更新实体
     * @return 影响行数
     * @author kzj
     * @date 2025年01月20日 23:11:54
     * @version 1.0.0
     */
    public int update(Company company) {
        //updateByPrimaryKeySelective：为null的字段不会受影响
        //updateByPrimaryKey：字段为null时，会将数据库对应字段置空
        return companyMapper.updateByPrimaryKeySelective(company);
    }

    /**
     * CompanyService
     * 
     * @description 通过条件查询多条数据
     * @param args 参数
     * @return List<Company>
     * @author kzj
     * @date 2025年01月20日 23:11:54
     * @version 1.0.0
     */
    public List<Company> select(Company args) {
        return companyMapper.select(args);
    }

    /**
     * CompanyService
     * 
     * @description 通过主键查询公司表信息
     * @param cbh 主键编号
     * @return Company
     * @author kzj
     * @date 2025年01月20日 23:11:54
     * @version 1.0.0
     */
    public Company selectOne(String cbh) {
        return companyMapper.selectByPrimaryKey(cbh);
    }
}